Systems and methods of interactive exercising

ABSTRACT

A computer system includes a memory, at least one processor coupled to the memory, and a user interface component executable by the at least one processor. The user interface component is configured to receive information descriptive of a pace at which a user is exercising, determine a playback speed for video content having an audio component, the playback speed determined with reference to the pace at which the user is exercising, present the video content at the playback speed, generate a plurality of audio frames from the audio component of the video content, the plurality of audio frames being generated with reference to the pace at which the user is exercising, and present the plurality of audio frames to the user.

CROSS-REFERENCE TO RELATED PATENT APPLICATIONS

The present application is a continuation of U.S. patent applicationSer. No. 15/921,951, titled “Systems and Methods of InteractiveExercising,” filed on Mar. 15, 2018, which is a continuation of U.S.patent application Ser. No. 14/168,349, titled “Systems and Methods ofInteractive Exercising,” filed on Jan. 30, 2014, which claims priorityunder 35 U.S.C. § 119(e) to U.S. Provisional Patent Application Ser. No.61/803,637, titled “Systems and Methods of Interactive Exercising,”filed on Mar. 20, 2013 (“the provisional application”), which is herebyincorporated herein by reference in its entirety.

BACKGROUND

Exercise can be tedious due to its routine nature. To decrease thistediousness by providing people with a varied exercise experience, thefitness industry has developed several different types of exerciseequipment. For example, weight lifting systems, treadmills, ellipticals,and exercise bicycles are now commonplace within commercial gyms. Inaddition, commercial gyms often position televisions and stereo systemswith close proximity to the exercise equipment, thus enabling customersto view or hear popular media, thereby enhancing their exerciseexperience.

SUMMARY

Some aspects disclosed herein describe a method including receivinginformation from a sensor coupled to a user, the information beingdescriptive of a first speed at which the user is exercising anddisplaying a video at a playback speed depending on the speed at whichthe user is exercising and a speed at which the video was filmed suchthat the speed at which the video is displayed is synchronized to thespeed at which the user is exercising. Displaying the video at playbackspeeds different than normal playback speed can include manipulating theaudio track of the video asynchronously. Adjusting the speed of thevideo to synchronize the speeds can be accomplished without reference toadditional video metadata, such as frame rates, timestamps, or framedisplay times. Some aspects disclosed herein describe a method includingfilming a video of a path at a fixed speed and processing the video tosimulate a user traversing the path at the fixed speed. The processingcan include editing the video to more closely simulate a runner orcyclist moving along the path.

One implementation disclosed herein is a computer system includes amemory, at least one processor coupled to the memory, and a userinterface component executable by the at least one processor andconfigured to receive information descriptive of a pace at which a useris exercising; present video content depicting a race at a playbackspeed dependent on the pace; and display a dashboard including anindication of the pace.

Another implementation disclosed herein is a method executed by acomputer system including memory and at least one processor coupled tothe memory. The method includes receiving information descriptive of apace at which a user is exercising. The method further includespresenting video content depicting a race at a playback speed dependenton the pace. The method also includes displaying a dashboard includingan indication of the pace.

Another implementation disclosed herein is a non-transitorycomputer-readable medium storing computer-executable sequences ofinstructions for simulating a race, the sequences of instructionsincluding instructions configured to instruct at least one processor toreceive information descriptive of a pace at which a user is exercising,present video content depicting the race at a playback speed dependenton the pace, and display a dashboard including an indication of thepace.

Another implementation disclosed herein includes a computer systemcomprising a memory, at least one processor coupled to the memory, and auser interface component executable by the at least one processor andconfigured to receive information descriptive of a pace at which a useris exercising, determine a playback speed for video content having anaudio component, the playback speed determined with reference to thepace at which the user is exercising, present the video content at theplayback speed, generate a plurality of audio frames from the audiocomponent of the video content, the plurality of audio frames beinggenerated with reference to the pace at which the user is exercising,and present the plurality of audio frames to the user.

In one example, the system further includes an exercise machineinterface to an exercise machine upon which the user is exercising, theexercise machine interface enabling communication between the computersystem and the exercise machine. In some examples, the user interfacecomponent is further configured to transmit one or more commands to theexercise machine via the exercise machine interface, and wherein the oneor more commands include at least one command to adjust at least one ofan incline of the exercise machine and a resistance of the exercisemachine. In at least one example, the user interface component isfurther configured to receive, from the exercise machine via theexercise machine interface, the information descriptive of the pace atwhich the user is exercising.

In some examples, the information descriptive of the pace at which theuser is exercising is generated by the exercise machine. In at least oneexample, the information descriptive of the pace at which the user isexercising is received from a sensor communicatively coupled to anexercise machine upon which the user is exercising. In an example,generating the plurality of audio frames includes periodicallysynchronizing the plurality of audio frames with the audio component ofthe video content.

Another implementation disclosed herein includes a method executed by acomputer system including memory and at least one processor coupled tothe memory, the method comprising receiving information descriptive of apace at which a user is exercising, determining a playback speed forvideo content having an audio component, the playback speed determinedwith reference to the pace at which the user is exercising, presentingthe video content at the playback speed, generating a plurality of audioframes from the audio component of the video content, the plurality ofaudio frames being generated with reference to the pace at which theuser is exercising, and presenting the plurality of audio frames to theuser.

In some examples, the method includes communicating at least one commandto an exercise machine upon which the user is exercising, the at leastone command including at least one command to adjust at least one of anincline and a resistance of the exercise machine.

In at least one example, the method includes receiving the informationdescriptive of the pace at which the user is exercising from an exercisemachine upon which the user is exercising. In an example, theinformation descriptive of the pace at which the user is exercising isgenerated by the exercise machine. In one example, the method includesreceiving the information descriptive of the pace at which the user isexercising from a sensor coupled to an exercise machine upon which theuser is exercising. In some examples, generating the plurality of audioframes includes periodically synchronizing the plurality of audio frameswith the audio component of the video content.

Another implementation disclosed herein includes a non-transitorycomputer-readable medium storing computer-executable sequences ofinstructions for executing an exercise routine, the sequences ofinstructions including instructions configured to instruct at least oneprocessor to receive information descriptive of a pace at which a useris exercising, determine a playback speed for video content having anaudio component, the playback speed determined with reference to thepace at which the user is exercising, present the video content at theplayback speed, generate a plurality of audio frames from the audiocomponent of the video content, the plurality of audio frames beinggenerated with reference to the pace at which the user is exercising,and present the plurality of audio frames to the user.

In some examples, the instructions further instruct the at least oneprocessor to implement an application program interface enablingcommunication between the computer system and an exercise machine uponwhich the user is exercising. In at least one example, the instructionsfurther instruct the at least one processor to communicate at least onecommand to the exercise machine, the at least one command including atleast one command to adjust at least one of a resistance of the exercisemachine and an incline of the exercise machine. In one example, theinstructions further instruct the at least one processor to implementthe application program interface to receive, from the exercise machine,the information descriptive of the pace at which the user is exercisingfrom the exercise machine.

In at least one example, the information descriptive of the pace atwhich the user is exercising is generated by the exercise machine. Insome examples, the instructions further instruct the at least oneprocessor to implement a communication interface enabling receipt of theinformation descriptive of the pace at which the user is exercising froma sensor communicatively coupled to an exercise machine upon which theuser is exercising. In an example, generating the plurality of audioframes includes periodically synchronizing the plurality of audio frameswith the audio component of the video content.

Still other aspects, embodiments and advantages of these exemplaryaspects and embodiments, are discussed in detail below. Moreover, it isto be understood that both the foregoing information and the followingdetailed description are merely illustrative examples of various aspectsand embodiments, and are intended to provide an overview or frameworkfor understanding the nature and character of the claimed aspects andembodiments. Any embodiment disclosed herein may be combined with anyother embodiment. References to “an embodiment,” “an example,” “someembodiments,” “some examples,” “an alternate embodiment,” “variousembodiments,” “one embodiment,” “at least one embodiment,” “this andother embodiments” or the like are not necessarily mutually exclusiveand are intended to indicate that a particular feature, structure, orcharacteristic described in connection with the embodiment may beincluded in at least one embodiment. The appearances of such termsherein are not necessarily all referring to the same embodiment.

BRIEF DESCRIPTION OF DRAWINGS

Various aspects of at least one embodiment are discussed below withreference to the accompanying figures, which are not intended to bedrawn to scale. The figures are included to provide an illustration anda further understanding of the various aspects and embodiments, and areincorporated in and constitute a part of this specification, but are notintended as a definition of the limits of any particular embodiment. Thedrawings, together with the remainder of the specification, serve toexplain principles and operations of the described and claimed aspectsand embodiments. In the figures, each identical or nearly identicalcomponent that is illustrated in various figures is represented by alike numeral. For purposes of clarity, not every component may belabeled in every figure. In the figures:

FIG. 1 is a block diagram of a computer system for an interactiveexercising system, according to one implementation;

FIG. 2 is an example of a screenshot of the interactive exercisingsystem according to one implementation;

FIG. 3 is a block diagram of an example computer system used toimplement aspects of an exemplary interactive exercising system; and

FIG. 4 is a flow chart of a method for displaying video content,according to one implementation.

DETAILED DESCRIPTION

Some aspects disclosed herein describe a method that includes receivinginformation from a sensor coupled to a user, the information beingdescriptive of a first speed at which the user is exercising anddisplaying a video at a playback speed depending on the speed at whichthe user is exercising and a speed at which the video was filmed suchthat the speed at which the video is displayed is synchronized to thespeed at which the user is exercising. The video may be displayed atvarying playback speeds. In this implementation, the audio component maybe larger than the video file, e.g., twice as long. Adjusting the speedof the video to synchronize the speeds can be accomplished withoutreference to additional video metadata, such as frame rates, timestamps,or frame display times. Some aspects disclosed herein describe a methodincluding filming a video of a path at a fixed speed and processing thevideo to simulate a user traversing the path at the fixed speed. Theprocessing can include editing the video to more closely simulate arunner or cyclist moving along the path.

Some of the aspects and embodiments disclosed herein describe newapparatus and processes of interactive exercising. In some embodimentsthe system includes a sensor that is attached to a user of an exercisemachine. The sensor can also be attached to a wheel or other componentof an exercise machine. In some embodiments, the sensor transmitssignals to a computing device, which displays a video to the user. Thedisplay can be a part of the computing device, or an external display.The video may depict a path through which the user is virtually movingwhile exercising on the exercise machine. In some embodiments, the videodisplay adjusts dynamically to synchronize with the pace of the user.According to various embodiments, the sensor, video, and playback moduleare configured to interoperate with a wide variety of exercise machinesand computing devices.

Examples of the methods and systems discussed herein are not limited inapplication to the details of construction and the arrangement ofcomponents set forth in the following description or illustrated in theaccompanying drawings. The methods and systems are capable ofimplementation in other embodiments and of being practiced or of beingcarried out in various ways. Examples of specific implementations areprovided herein for illustrative purposes only and are not intended tobe limiting. In particular, acts, components, elements and featuresdiscussed in connection with any one or more examples or embodiments arenot intended to be excluded from a similar role in any other examples orembodiments.

Also, the phraseology and terminology used herein is for the purpose ofdescription and should not be regarded as limiting. Any references toexamples, embodiments, components, elements or acts of the systems andmethods herein referred to in the singular may also embrace embodimentsincluding a plurality, and any references in plural to any embodiment,component, element or act herein may also embrace embodiments includingonly a singularity. References in the singular or plural form are notintended to limit the presently disclosed systems or methods, theircomponents, acts, or elements. The use herein of “including,”“comprising,” “having,” “containing,” “involving,” and variationsthereof is meant to encompass the items listed thereafter andequivalents thereof as well as additional items. References to “or” maybe construed as inclusive so that any terms described using “or” mayindicate any of a single, more than one, and all of the described terms.

Referring to FIG. 1, in some embodiments, the system 100 includes asensor 106, which can be attached to a user 102. The user 102 can beusing an exercise machine 104. The sensor 106 detects informationdescriptive of physical activity conducted by the user 102, such asspeed, distance, pace, cadence, location, altitude, and heart rate. Insome embodiments, the heart rate and other activity information can bereceived from a separate sensor or monitoring device, such as a heartrate monitor 114. In some embodiments, the system 100 renders feedbackgenerated from the determined activity information to the user 102 whilethe user exercises on a stationary exercise machine (e.g., a treadmill).Thus, in some embodiments, the actual location of the user 102 may notchange while the feedback is rendered.

The sensor 106 can determine the activity information in various waysknown in the art. For example, in some embodiments, the sensor 106includes a foot pod compatible with the ANT+™ standard, such as afootpad available from Dynastream Innovations, Inc. of Cochrane,Alberta, Canada. In other embodiments, the sensor 106 includes a footpod compatible with the Bluetooth protocol or other wireless protocols.Other methods for determining the activity information can be found inUS Patent Publication 2005/0075213, titled “Exercise Device Independent,Variable Display Rate Visual Exercise System,” filed Aug. 26, 2004,which is hereby incorporated herein by reference in its entirety.

In some embodiments, the sensor 106 transmits the activity informationto a computing device 108. For example, a Universal Serial Bus (USB)stick 112, such as an ANT+ USB stick, can be connected to the computingdevice 108, including, but not limited to, a laptop computer or otherpersonal computer, a smartphone, other mobile phone, handheld computer,a tablet PC, or other computing device, such as a laptop computer or atablet computer (such as the iPad® commercially available from AppleInc. of Cupertino, Calif.) and configured to receive the informationdetected by the sensor 106. The computing device 108 can be connected toa display device 110. Alternatively or additionally, the computingdevice 108 can include a display and show information and video withoutan external display device 110. In some embodiments, the display on thecomputing device 108 can be used in conjunction with the display device110, for example, showing a video on the display device 110 and showingthe video or other information on the computing device 108.

In some embodiments, the display device 110 displays a video of a pathon which the user 102 is virtually running According to theseembodiments, as the user 102 runs on the exercise machine 104, the videoadvances, virtually advancing the user 102 down the path shown in thevideo. The speed at which the video is displayed on the display device110 is synchronized with the pace at which the user 102 is running. Thespeed of the video is adjusted based on the activity informationtransmitted by the sensor 106 and received by the computing device 108.

According to some embodiments, the video is filmed as a runner runningon the path at a fixed known speed, for example, 6 miles per hour (mph).Thus, using the filmed speed and the running speed of the user 102, thecomputing device 108 can output the video to the display device 110 atdifferent playback speeds to synchronize the running of the user 102with the speed of the video. As a result, the user 102 can experience amore realistic virtual running environment.

For example, if the user 102 is running at 9 mph on the treadmill, thesensor 106 can detect that the user 102 is running at 9 mph and transmitthe speed information to the computing device 108. In some embodiments,the computing device 108 can determine the speed of the user based oninformation detected by the sensor 106. If the video was shot at 6 mph,the computing device 108 can set the playback speed of the video to 1.5times normal speed, thus displaying a video that seems to move at 9 mph.In this way, mile markers and other landmarks displayed in the videowill correspond to the speed of the user 102. If the user 102 slowsdown, for example, to 6 mph, the sensor 106 can detect changes in speedand transmit the information to the computing device 108. The computingdevice 108 can adjust the playback speed accordingly, slowing down tonormal playback speed, corresponding to the user's 6 mph running speed.The computing device 108 can adjust the playback speed gradually tosynchronize more accurately to the user's speed changes.

As the sensor 106 may be attached to the user 102, the system can beimplemented with any exercise machine, or without an exercise machine,such as by a user running in place. As the computing device 108 simplychanges the playback speed of the pre-recorded video, the system can beimplemented with various types of computing devices and with any videoincluding content filmed at a known speed.

The video can also include an audio component. The audio component maybe adjusted along with the video track and thus may change pitch wherethe video track speed is increased or decreased. The computing device108 can adjust the audio component separately from the video track toprevent pitch change that could occur from simply changing the playbackspeed of the audio. The audio can be adjusted using techniques known inthe art for speeding up and slowing down audio without altering thepitch of the audio. Alternatively or additionally, the audio can beadjusted, for example, by dropping audio frames when the video is playedat a faster than normal speed. The audio track can be analyzed to selectaudio frames to drop that can be less noticeable than other audioframes. For example, the audio can be adjusted by dropping audio frameswith lower amplitudes, indicating less auditory information in theframes being dropped. The dropped audio frames can be frames of soundthat is more ambient or white noise rather than specific sounds, such asa nearby runner's footsteps or a car driving by. The audio can also beadjusted, for example, by adding frames or additional layers of audiotracks when the video is played at a slower than normal speed. Forexample, the audio track can be copied and added as one or moreadditional layers of audio. The additional layers can be time shiftedand/or blended to produce more ambient noise for the additional framesof audio needed to cover the longer length of time the video is shown,as it is played back slower than normal speed. In some embodiments,portions of the audio can be looped to cover the extra length of time.The audio track can similarly be analyzed to select portions that aremore indicative of ambient or background noise for copying.

The system can also include multiple versions of a video. For example,the system can include videos of a path filmed at different speeds. Thedifferent speeds can correspond to different activities. For example, apath can be filmed at a slower speed for users to virtually run on thepath, and filmed at a faster speed for users to bike on the path. Forexample, the system can include a video of a path filmed at 6 mph forrunners, and a video of the path filmed at 15 mph for cyclists.

In some implementations, the system can include a single pace for eachactivity. In other implementations, the system can also use multiplespeeds for each activity. For example, a path can be filmed at variousdifferent running speeds, such as a 6 mph pace and an 8 mph pace. Thesystem can dynamically switch between videos depending on the speed ofthe user. For example, a user can start running on a treadmill at a 6mph pace. The system can display the 6 mph video to the user at normalspeed to correspond to the user's running pace. The user can decide tostart running faster. As the user approaches 7 mph, the system cancontinue to display the 6 mph video, playing the video at a faster thannormal speed, corresponding to the user's speed. As the user exceeds 7mph, the system can switch over to the 8 mph video, played back at aslower speed to correspond to the user's speed. The system can use amile marker or a time offset from the beginning of the video, calibratedfor the various playback speeds to determine where in the 8 mph videothe system should start playing so that the user continues on the pathat the same point. The system can also use different speed differencesto decide when to cut over to the second video. For example, if a videocan look more realistic for greater differences in playback speed whensped up as opposed to slowed down, the system can use a speed closer to8 mph at the point at which to cut over to the 8 mph video. In someembodiments, the cut over determinations can depend on the factor of theplayback speed, rather than, or in addition to, the pace at which thevideo is filmed.

The system can also indicate the slope of the path so that the user canadjust the tilt of the exercise device accordingly. As the user runs ata slope corresponding to the video, the system can provide a morerealistic virtual running environment. For stationary bikes, the systemcan indicate an appropriate corresponding resistance that would providea more realistic virtual biking environment. For example, the system caninclude a lookup table with degrees of incline and decline correspondingto specific tilt numbers and resistance numbers for the exercisedevices. As the video of the path traverses changing slopes, the videocan include a message to the user to change the tilt or resistance asappropriate. The video can display both tilt and resistance messages, orthe video can display one or the other depending on the filmed speed ofthe video. For example, the videos filmed at speeds more appropriate forrunning can display only the tilt messages, while the videos filmed atspeeds more appropriate for cycling can display only the resistancemessages.

In some embodiments, the computing device 108 can have an interfacethrough which the computing device 108 can communicate directly with theexercise machine 104. For example, the exercise machine 104 can includean output port that can be connected via a cable to a tablet computer,such as an iPad®, available from Apple, Inc. of Cupertino, Calif., orother computing device 108. In another implementation, exercise machine104 may communicate with the computing device 108 via ANT+, Bluetoothpairing, or any other appropriate wireless method. The computing device108 can receive information directly from the exercise machine 104, suchas speed, tilt, resistance, cadence, time elapsed, and user heart rate.The computing device 108 can use the activity information received fromthe exercise machine 104 to control the playback speed of the video, asdescribed above. In some embodiments the exercise machine 104 can alsoreceive information and commands from the computing device 108. Forexample, the computing device 108 can issue commands to the exercisemachine 104 to change the tilt or resistance to correspond to thechanging slope of the path shown on the video. In some embodiments,communication through the interface can include using an API. Forexample, an Outside Interactive Virtual Runner Framework (VRF) canprovide a library of commands and data through which the computingdevice 108 can communicate with the exercise machine 104 and vice versa.An example of such a framework is described in attached Appendix C ofthe provisional application.

The system can also show user information about the user and/or theexercise session with the video. For example, referring to FIG. 2, thesystem can display a dashboard 202 that shows user information receivedby the computing device from the sensor. The dashboard 202 can includeinformation such as time the user has been using the system, the user'scurrent heart rate, the user's average heart rate, the user's distancerun or cycled, the user's current pace, the user's average pace, theuser's current cadence, the user's average cadence, calories burned bythe user, and other information related to the user and the exercisesession. The dashboard 202 can also display information or elementsdirected to the user. For example, the dashboard 202 can displayelements configured to encourage or motivate the user. The system canstore personal records including fastest times for each path and thedashboard 202 can display the current pace and whether the user is onpace to beat the personal record for the path. The dashboard 202 canalso display encouraging or motivating elements depending on thedetected speed of the user. For example, the dashboard 202 can displayan encouraging phrase if the system detects that the user is speedingup, and/or a motivating phrase if the system detects that the user isslowing down. The speeding up and slowing down can be relative to acurrent speed and/or past speeds, such as an average speed for the useron the path, or a speed of the last run by the user on the path, or afastest speed for the user on the path.

The audio can also be utilized to present information or elementsdirected at the user. For example, the encouraging and/or motivatingphrases can be an audio recording played to the user. The audiorecording can be pre-recorded in the system or phrases recorded orprovided by the user. For example, the user can have a coach or otherperson that is especially motivating or encouraging to the user provideaudio recordings of phrases that can be designated as encouraging ormotivating and played accordingly. The audio recordings can also includesuch encouragement as a cheering crowd for when the user speeds up orwhen the user nears the end of a path. The audio recordings can alsoinclude phrases for when personal records are broken and for distancemilestones.

In another implementation, the audio component and/or the imagecomponent of the video content may include a content item, such as anadvertisement for a race's sponsor. For example, the advertisement maybe displayed as a screen overlay. In another example, the advertisementmay be provided as an audio jingle. The content item may also bealtered, depending on the user, the system, etc. For example, the usermay have provided data that they need new running shoes and, therefore,the advertisement that is displayed on a nearby billboard is for Brand Arunning shoes.

The video can also display landmarks that are nearby. For example, asthe user runs by the CITGO sign 204 in FIG. 2, the video can display asmaller frame with a closer shot or picture of the CITGO sign 204. Thevideo can also display information about the landmarks, such asinteresting facts or a history of the landmarks. The video can alsodisplay landmarks that are nearby but not visible on the path as filmed.For example, in FIG. 2, the video can also display information aboutFenway Park, a famous landmark nearby that may not be visible on thefilmed path. The audio can also be utilized for providing informationabout the landmarks.

In some implementations, the dashboard 202 may represent each user as anavatar within the video, i.e., virtual environment. During the exercise,when a second user wishes to contact a first user, a variety of methodsmay be used, including, but not limited to, text, email, verbal (audio),etc. The first and the second user may interact during exercise or inanother fashion. For example, social media may be used to link the firstand the second user.

Social media, such as a social networking platform, may also be used forcommunication between the first user and the second user. In someimplementations, the communication may be displayed on the dashboard 202with each respective avatar, such as chats, messages, posts, etc. Forexample, in some embodiments, the computing device 108 executes aperiodic polling process that gathers communications directed to socialmedia accounts associated with the user. The periodic polling processmay execute, via an internet connection, instructions that subscribe toapplication program interfaces (APIs) supported by social mediawebsites.

According to some embodiments, the dashboard 202 is configured to allowusers to easily share exercise related activities and accomplishmentswith their social network. In these embodiments, the dashboard 202includes actionable user interface elements that, when actuated, postcommentary related to the user's exercise activity to social mediaaccounts associated with the user via one or more APIs. The commentarymay be system provided (i.e., the system may recognize achievement of amilestone and present content describing it). The commentary may also beuser provided (i.e., the user inputs commentary). In either case, insome embodiments, the dashboard 202 includes a share button, that whenactuated, transmits the commentary to social media accounts with theuser. In this way, the commentary may be posted to the user's wall,added to the user's profile, etc.

As discussed above, the video can be filmed at a known, fixed speed,which allows a computing device 108 to synchronize the video with thespeed of the runner by changing the playback speed of the video. Due tothe known, fixed speed of the video, the computing device 108 cansynchronize the video with the speed of the runner without needingadditional information about frame rates, timestamps of frames, ornative frame display times. In some embodiments, such information can beused in addition to the known, fixed filmed speed. The video can befurther synchronized with the speed of the user and the user's exercisemachine by measuring the time taken to run a known distance on thevideo, independent of the information from the exercise machine. Theprocess to further synchronize the video with the user's exercisemachine is described in further detail in Appendix B of the provisionalapplication.

The video can be filmed at a fixed known speed by using a vehicle movingat a fixed speed on the path. For example, the video can be filmed by avideo camera operator on a motorized scooter or personal transporter,such as a Segway®, available from Segway Inc. of Bedford, N.H. Thepersonal transporter can be set to the fixed known speed desired for thevideo. Alternatively or additionally, another device, such as a globalpositioning system (GPS) device can be used to keep the personaltransporter moving at a relatively fixed speed. The video cameraoperator can stabilize the video camera on the personal transporter orusing a camera steadying apparatus, such as Steadicam® commerciallyavailable from Tiffen® of Hauppaugue, N.Y. The camera steadyingapparatus may be worn by the operator and steadied against theoperator's body. The personal transporter can be modified to be moreeasily operated and maneuvered without using the operator's hands. Forexample, the handlebar of the personal transporter can be replaced witha structure that allows the operator to maneuver the personaltransporter using the operator's legs. In some embodiments, the videocan be edited to further fix the speed of the video. For example, thevideo can be divided into one mile (or any other appropriate) segmentsand sped up or slowed down to match the desired pace of the video. Forexample, a three mile path filmed at a 6 mph pace should take 10 minutesper mile. In filming the video, the first mile can end up being 11minutes long, while the second mile is 9 minutes long. The video can beedited to speed up the pace of the first mile so that it takes 10minutes. The video can be further edited to slow down the pace of thesecond mile so that it also takes 10 minutes. This way, each mile of thevideo is shown at a 10 minute per mile (6 mph) pace.

Computer System

As discussed above with regard to FIGS. 1 and 2, various aspects andfunctions described herein may be implemented as specialized hardware orsoftware components executing in one or more computer systems. There aremany examples of computer systems that are currently in use. Theseexamples include, among others, network appliances, personal computers,workstations, mainframes, networked clients, servers, media servers,application servers, database servers and web servers. Other examples ofcomputer systems may include mobile computing devices (i.e., computersystems with a size, weight, and general form factor capability of beingroutinely transported by a human without assistance), such as cellularphones, tablet computers, and personal digital assistants, and networkequipment, such as load balancers, routers and switches. Further,aspects may be located on a single computer system or may be distributedamong a plurality of computer systems connected to one or morecommunications networks.

For example, various aspects and functions may be distributed among oneor more computer systems configured to provide a service to one or moreclient computers, or to perform an overall task as part of a distributedsystem. Additionally, aspects may be performed on a client-server ormulti-tier system that includes components distributed among one or moreserver systems that perform various functions. Consequently, examplesare not limited to executing on any particular system or group ofsystems. Further, aspects and functions may be implemented in software,hardware or firmware, or any combination thereof. Thus, aspects andfunctions may be implemented within methods, acts, systems, systemelements and components using a variety of hardware and softwareconfigurations, and examples are not limited to any particulardistributed architecture, network, or communication protocol.

Referring to FIG. 3, there is illustrated a block diagram of adistributed computer system 300, in which various aspects and functionsare practiced. As shown, the distributed computer system 300 includesone more computer systems that exchange information. More specifically,the distributed computer system 300 includes computer systems 302, 304and 306. As shown, the computer systems 302, 304 and 306 areinterconnected by, and may exchange data through, a communicationnetwork 308. The network 308 may include any communication networkthrough which computer systems may exchange data. To exchange data usingthe network 308, the computer systems 302, 304 and 306 and the network308 may use various methods, protocols and standards, including, amongothers, Fibre Channel, Token Ring, Ethernet, Wireless Ethernet,Bluetooth, IP, IPV6, TCP/IP, UDP, DTN, HTTP, FTP, SNMP, SMS, MMS, SS7,JSON, SOAP, CORBA, REST and Web Services. To ensure data transfer issecure, the computer systems 302, 304 and 306 may transmit data via thenetwork 308 using a variety of security measures including, for example,TLS, SSL or VPN. While the distributed computer system 300 illustratesthree networked computer systems, the distributed computer system 300 isnot so limited and may include any number of computer systems andcomputing devices, networked using any medium and communicationprotocol.

As illustrated in FIG. 3, the computer system 302 includes a processor310, a memory 312, an interconnection element 314, an interface 316 anddata storage element 318. To implement at least some of the aspects,functions and processes disclosed herein, the processor 310 performs aseries of instructions that result in manipulated data. The processor310 may be any type of processor, multiprocessor or controller. Someexemplary processors include commercially available processors such asan Intel Xeon, Itanium, Core, Celeron, or Pentium processor, an AMDOpteron processor, an Apple A4 or A5 processor, a Sun UltraSPARC or IBMPower5+ processor and an IBM mainframe chip. The processor 310 isconnected to other system components, including one or more memorydevices 312, by the interconnection element 314.

The memory 312 stores programs and data during operation of the computersystem 302. Thus, the memory 312 may be a relatively high performance,volatile, random access memory such as a dynamic random access memory(“DRAM”) or static memory (“SRAM”). However, the memory 312 may includeany device for storing data, such as a disk drive or other nonvolatilestorage device. Various examples may organize the memory 312 intoparticularized and, in some cases, unique structures to perform thefunctions disclosed herein. These data structures may be sized andorganized to store values for particular data and types of data.

Components of the computer system 302 are coupled by an interconnectionelement such as the interconnection element 314. The interconnectionelement 314 may include one or more physical busses, for example, bussesbetween components that are integrated within a same machine, but mayinclude any communication coupling between system elements includingspecialized or standard computing bus technologies such as IDE, SCSI,PCI and InfiniBand. The interconnection element 314 enablescommunications, such as data and instructions, to be exchanged betweensystem components of the computer system 302.

The computer system 302 also includes one or more interface devices 316such as input devices, output devices and combination input/outputdevices. Interface devices may receive input or provide output. Moreparticularly, output devices may render information for externalpresentation. Input devices may accept information from externalsources. Examples of interface devices include keyboards, mouse devices,trackballs, microphones, touch screens, printing devices, displayscreens, speakers, network interface cards, etc. Interface devices allowthe computer system 302 to exchange information and to communicate withexternal entities, such as users and other systems.

The data storage element 318 includes a computer readable and writeablenonvolatile, or non-transitory, data storage medium in whichinstructions are stored that define a program or other object that isexecuted by the processor 310. The data storage element 318 also mayinclude information that is recorded, on or in, the medium, and that isprocessed by the processor 310 during execution of the program. Morespecifically, the information may be stored in one or more datastructures specifically configured to conserve storage space or increasedata exchange performance. The instructions may be persistently storedas encoded signals, and the instructions may cause the processor 310 toperform any of the functions described herein. The medium may, forexample, be optical disk, magnetic disk or flash memory, among others.In operation, the processor 310 or some other controller causes data tobe read from the nonvolatile recording medium into another memory, suchas the memory 312, that allows for faster access to the information bythe processor 310 than does the storage medium included in the datastorage element 318. The memory may be located in the data storageelement 318 or in the memory 312, however, the processor 310 manipulatesthe data within the memory, and then copies the data to the storagemedium associated with the data storage element 318 after processing iscompleted. A variety of components may manage data movement between thestorage medium and other memory elements and examples are not limited toparticular data management components. Further, examples are not limitedto a particular memory system or data storage system.

Although the computer system 302 is shown by way of example as one typeof computer system upon which various aspects and functions may bepracticed, aspects and functions are not limited to being implemented onthe computer system 302 as shown in FIG. 3. Various aspects andfunctions may be practiced on one or more computers having a differentarchitectures or components than that shown in FIG. 3. For instance, thecomputer system 302 may include specially programmed, special-purposehardware, such as an application-specific integrated circuit (“ASIC”)tailored to perform a particular operation disclosed herein. Whileanother example may perform the same function using a grid of severalgeneral-purpose computing devices running MAC OS System X with MotorolaPowerPC processors and several specialized computing devices runningproprietary hardware and operating systems.

The computer system 302 may be a computer system including an operatingsystem that manages at least a portion of the hardware elements includedin the computer system 302. In some examples, a processor or controller,such as the processor 310, executes an operating system. Examples of aparticular operating system that may be executed include a Windows-basedoperating system, such as, Windows NT, Windows 2000 (Windows ME),Windows XP, Windows Vista or Windows 7 operating systems, available fromthe Microsoft Corporation, a MAC OS System X operating system or an iOSoperating system available from Apple Computer, one of many Linux-basedoperating system distributions, for example, the Enterprise Linuxoperating system available from Red Hat Inc., a Solaris operating systemavailable from Sun Microsystems, a UNIX operating systems available fromvarious sources, or an Android based operating system available fromGoogle Inc. Many other operating systems may be used, and examples arenot limited to any particular operating system.

The processor 310 and operating system together define a computerplatform for which application programs in high-level programminglanguages are written. These component applications may be executable,intermediate, bytecode or interpreted code which communicates over acommunication network, for example, the Internet, using a communicationprotocol, for example, TCP/IP. Similarly, aspects may be implementedusing an object-oriented programming language, such as .Net, SmallTalk,Java, C++, Ada, C# (C-Sharp), Python, or JavaScript. Otherobject-oriented programming languages may also be used. Alternatively,functional, scripting, or logical programming languages may be used.

Interactive Exercise Methods

FIG. 4 is a block diagram of a method for displaying video content,according to one implementation. In a general overview, a selection ofvideo content is received at a server (block 402). Video content relatedto the selection is retrieved from a database (block 404). Informationindicative of a speed is received from a sensor (block 406). Based onthe speed, the video content is displayed (block 408).

At block 402, the selection of the video content may be performed at auser device. The user device may be a client device, such as a mobilephone, a tablet computer, or any other appropriate client device. Theuser device may be implemented with a treadmill or other exerciseequipment.

At block 404, the video content related to the selection may beretrieved from a database. At block 406, a sensor may receiveinformation indicative of a speed. In some implementations, the sensoris coupled to the user device. In another implementation, the sensor iscoupled to an article of clothing, such as a shoe, a strap, etc. of theuser. The information indicative of a speed may include the speed of agait of a user. In another implementation, the information indicative ofa speed may include a speed of the video content. In yet anotherimplementation, the information indicative of a speed may include aspeed of the exercise equipment, such as the treadmill, a stair climber,an elliptical trainer, etc.

At block 408, based on the speed, the video content is displayed. Thedisplay of the video content may include an audio component and an imagecomponent. The audio component may include a song. The image componentmay include a race route. In some implementations, the image componentmay be displayed as an overlay. For example, the race route may bedisplayed as an overlay on a default screen of the exercise equipment.

In some implementations, the displayed video content may be configurableby the user. For example, the user may change the race route, dependingon the mileage. The user may also select different songs along the raceroute. In yet another example, the user may select other users to runalongside them. In this example, the user may connect with other users,via social networking application, to run the race route together oragainst each other.

The display of the video content may be displayed at a playback speed.The playback speed may be synchronized to the information indicative ofa speed, e.g., the speed of the user. In other implementations, thevideo content may be provided at a fixed speed, e.g., the video contentis processed to simulate the user traversing a route at the fixed speed.

In another implementation, the video content may include an incline. Forexample, if the video content is the Boston Marathon race route, thenthe video content will include Heartbreak Hill. In some implementations,the incline of the video content corresponds to an incline of the userdevice. For example, the user may manually adjust the incline of theuser device to match the incline of the video content, which allows theexercise equipment to also correspondingly incline. In another example,the incline of the exercise equipment may automatically match theincline of the video content based on the user device.

Additionally, various aspects and functions may be implemented in anon-programmed environment, for example, documents created in HTML, XMLor other format that, when viewed in a window of a browser program, canrender aspects of a graphical-user interface or perform other functions.Further, various examples may be implemented as programmed ornon-programmed elements, or any combination thereof. For example, a webpage may be implemented using HTML while a data object called fromwithin the web page may be written in C++. Thus, the examples are notlimited to a specific programming language and any suitable programminglanguage could be used. Accordingly, the functional components disclosedherein may include a wide variety of elements, e.g. specializedhardware, executable code, data structures or objects that areconfigured to perform the functions described herein.

In some examples, the components disclosed herein may read parametersthat affect the functions performed by the components. These parametersmay be physically stored in any form of suitable memory includingvolatile memory (such as RAM) or nonvolatile memory (such as a magnetichard drive). In addition, the parameters may be logically stored in apropriety data structure (such as a database or file defined by a usermode application) or in a commonly shared data structure (such as anapplication registry that is defined by an operating system). Inaddition, some examples provide for both system and user interfaces thatallow external entities to modify the parameters and thereby configurethe behavior of the components.

The operations described in this specification can be implemented asoperations performed by a data processing apparatus on data stored onone or more computer-readable storage devices or received from othersources.

Similarly, while operations are depicted in the drawings in a particularorder, this should not be understood as requiring that such operationsbe performed in the particular order shown or in sequential order, orthat all illustrated operations be performed, to achieve desirableresults. In certain circumstances, multitasking and parallel processingmay be advantageous. Moreover, the separation of various systemcomponents in the implementations described above should not beunderstood as requiring such separation in all implementations, and itshould be understood that the described program components and systemscan generally be integrated together in a single software product orpackaged into multiple software products.

Having thus described several aspects of at least one example, it is tobe appreciated that various alterations, modifications, and improvementswill readily occur to those skilled in the art. For instance, examplesand embodiments disclosed herein may also be used in other contexts.Such alterations, modifications, and improvements are intended to bepart of this disclosure, and are intended to be within the scope of theexamples discussed herein. Accordingly, the foregoing description anddrawings are by way of example only.

What is claimed is:
 1. A computer system comprising: a memory; at leastone processor coupled to the memory; and a user interface componentexecutable by the at least one processor and configured to: receiveinformation descriptive of a pace at which a user is exercising;determine a playback speed for video content having an audio component,the playback speed determined with reference to the pace at which theuser is exercising; present the video content at the playback speed;generate a plurality of audio frames from the audio component of thevideo content, the plurality of audio frames being generated withreference to the pace at which the user is exercising; and present theplurality of audio frames to the user.
 2. The computer system of claim1, further comprising an exercise machine interface to an exercisemachine upon which the user is exercising, the exercise machineinterface enabling communication between the computer system and theexercise machine.
 3. The computer system of claim 2, wherein the userinterface component is further configured to transmit one or morecommands to the exercise machine via the exercise machine interface, andwherein the one or more commands include at least one command to adjustat least one of an incline of the exercise machine and a resistance ofthe exercise machine.
 4. The computer system of claim 2, wherein theuser interface component is further configured to receive, from theexercise machine via the exercise machine interface, the informationdescriptive of the pace at which the user is exercising.
 5. The computersystem of claim 4, wherein the information descriptive of the pace atwhich the user is exercising is generated by the exercise machine. 6.The computer system of claim 1, wherein the information descriptive ofthe pace at which the user is exercising is received from a sensorcommunicatively coupled to an exercise machine upon which the user isexercising.
 7. The computer system of claim 1, wherein generating theplurality of audio frames includes periodically synchronizing theplurality of audio frames with the audio component of the video content.8. A method executed by a computer system including memory and at leastone processor coupled to the memory, the method comprising: receivinginformation descriptive of a pace at which a user is exercising;determining a playback speed for video content having an audiocomponent, the playback speed determined with reference to the pace atwhich the user is exercising; presenting the video content at theplayback speed; generating a plurality of audio frames from the audiocomponent of the video content, the plurality of audio frames beinggenerated with reference to the pace at which the user is exercising;and presenting the plurality of audio frames to the user.
 9. The methodof claim 8, further comprising communicating at least one command to anexercise machine upon which the user is exercising, the at least onecommand including at least one command to adjust at least one of anincline and a resistance of the exercise machine.
 10. The method ofclaim 8, further comprising receiving the information descriptive of thepace at which the user is exercising from an exercise machine upon whichthe user is exercising.
 11. The method of claim 10, wherein theinformation descriptive of the pace at which the user is exercising isgenerated by the exercise machine.
 12. The method of claim 8, furthercomprising receiving the information descriptive of the pace at whichthe user is exercising from a sensor coupled to an exercise machine uponwhich the user is exercising.
 13. The method of claim 8, whereingenerating the plurality of audio frames includes periodicallysynchronizing the plurality of audio frames with the audio component ofthe video content.
 14. A non-transitory computer-readable medium storingcomputer-executable sequences of instructions for executing an exerciseroutine, the sequences of instructions including instructions configuredto instruct at least one processor to: receive information descriptiveof a pace at which a user is exercising; determine a playback speed forvideo content having an audio component, the playback speed determinedwith reference to the pace at which the user is exercising; present thevideo content at the playback speed; generate a plurality of audioframes from the audio component of the video content, the plurality ofaudio frames being generated with reference to the pace at which theuser is exercising; and present the plurality of audio frames to theuser.
 15. The computer-readable medium of claim 14, wherein theinstructions further instruct the at least one processor to implement anapplication program interface enabling communication between thecomputer system and an exercise machine upon which the user isexercising.
 16. The computer-readable medium of claim 15, wherein theinstructions further instruct the at least one processor to communicateat least one command to the exercise machine, the at least one commandincluding at least one command to adjust at least one of a resistance ofthe exercise machine and an incline of the exercise machine.
 17. Thecomputer-readable medium of claim 15, wherein the instructions furtherinstruct the at least one processor to implement the application programinterface to receive, from the exercise machine, the informationdescriptive of the pace at which the user is exercising from theexercise machine.
 18. The computer-readable medium of claim 17, whereinthe information descriptive of the pace at which the user is exercisingis generated by the exercise machine.
 19. The computer-readable mediumof claim 14, wherein the instructions further instruct the at least oneprocessor to implement a communication interface enabling receipt of theinformation descriptive of the pace at which the user is exercising froma sensor communicatively coupled to an exercise machine upon which theuser is exercising.
 20. The computer-readable medium of claim 14,wherein generating the plurality of audio frames includes periodicallysynchronizing the plurality of audio frames with the audio component ofthe video content.